﻿using A.M.ETO;
using A.M.Storage.I_Application;
using L.M.System.Domain.DTO;
using L.M.System.Domain.Entity;
using L.M.System.Infrastruecure.Repository;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace L.M.System.Application.IServices
{
    public interface IOrganization_chartServices: IBaseServices<organization_chart,string>
    {
        /// <summary>
        /// 递归显示组织架构
        /// </summary>
        /// <param name="oId">主编号</param>
        /// <returns>递归显示组织架构</returns>
        List<DepMinrInforDTO> GetOrgainInforShow(string? oName, string? oId);

        /// <summary>
        /// 组织架构添加
        /// </summary>
        /// <param name="organiAddDTO">对象</param>
        /// <returns>统一返回格式</returns>
        Task<ApiReturn<string>> PostAddOrgainInfor(OrganiAddDTO organiAddDTO);

        /// <summary>
        /// 部门删除
        /// </summary>
        /// <param name="oId">部门编号</param>
        /// <returns>统一返回格式</returns>
        Task<ApiReturn<string>> DelPostInfor(string? oId);

        /// <summary>
        /// 反填部门
        /// </summary>
        /// <param name="oId">编号</param>
        /// <returns>统一返回格式</returns>
        Task<ApiReturn<organization_chart>> FanInforOrm(string? oId);


        /// <summary>
        /// 组织架构修改
        /// </summary>
        /// <param name="organiAddDTO">对象</param>
        /// <returns>统一返回格式</returns>
        Task<ApiReturn<string>> PostUpdOrgainInfor(OrganiAddDTO organiAddDTO);


    }
}
